#include <iostream>
#include <stack>
using namespace std;

stack<int> s;
stack<int> m;

void push(int val) {
	if (s.size()==0 || m.size()==0) {
		s.push(val);
		m.push(val);

		return;
	}

	s.push(val);

	int t = m.top();
	if (t < val)
		m.push(t);
	else
		m.push(val);
}

int pop() {
	if (s.size()==0 || m.size()==0)
		return -1;

	int t = s.top();

	s.pop();
	m.pop();

	return t;
}

int min() {
	return m.top();
}

//int main() {
//	push(5);
//	push(3);
//	push(1);
//	push(4);
//	push(2);
//
//	pop();
//	pop();
//	pop();
//	return 0;
//}